'\" t
.TH "SOURCES\&.CONF" "5" "2\&.6\&.99" "MacPorts 2\&.6\&.99" "MacPorts Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
sources.conf \- port definition configuration file of the MacPorts system
.SH "DESCRIPTION"
.sp
\fBsources\&.conf\fR is the configuration file used by the MacPorts system to locate its port definitions\&. The file is read by the \fBport\fR command to find available ports and how to install them\&. Lines beginning with \fI#\fR are comments, empty lines are ignored\&. Entries in this file are URIs optionally followed by flags in square brackets\&. Each source specification is given on a separate line\&. A grammar in EBNF is given below:
.sp
.if n \{\
.RS 4
.\}
.nf
line  = URI, [ \*(Aq[\*(Aq, flag, { space, flag }, \*(Aq]\*(Aq ] ;
flag  = \*(Aqdefault\*(Aq | \*(Aqnosync\*(Aq ;
space = \*(Aq \*(Aq | \*(Aq\et\*(Aq ;
.fi
.if n \{\
.RE
.\}
.SH "URI FORMATS"
.sp
MacPorts supports a number of different protocols as source descriptions\&.
.PP
\fIrsync://\fR
.RS 4
Followed by a server name and a path on this server, this URI instructs MacPorts to fetch the contents of the file or directory referenced by this URI into a path of its own choosing\&. This is the default method of port tree synchronization and is generally recommended\&. MacPorts will derive a machine\- and architecture\-specific URI (in the subdirectory PortIndex_${platform}_${os_major}_${os_arch}/) and attempt to download a pre\-generated PortIndex (including the PortIndex\&.quick file) from there\&.
.PP
\fBExample\fR
.RS 4
rsync://rsync\&.macports\&.org/macports/release/tarballs/ports\&.tar
.RE
.PP
\fBDefault\fR
.RS 4
rsync://rsync\&.macports\&.org/macports/release/tarballs/ports\&.tar [default]
.RE
.RE
.PP
\fIfile://\fR
.RS 4
Followed by an absolute path (which will result in
\fBthree\fR
slashes at the beginning of the URI) to a local directory that should be used as port tree\&. A port index will automatically be generated for this source\&. Note that MacPorts will try to determine whether the given path is under source control and attempt to update from the default remote server if it is\&. Currently, Subversion and Git (including git\-svn) are supported options\&. You can add the
\fInosync\fR
tag to avoid this behavior\&.

NOTE: The MacPorts user (usually called
\fImacports\fR) needs to be able to read and write to this location\&. This usually means your home directory is not a suitable place for a port tree, unless you adjust permissions accordingly\&.
.PP
\fBExample\fR
.RS 4
\m[blue]\fBfile:///opt/dports\fR\m[]
[nosync,default]
.RE
.PP
\fBDefault\fR
.RS 4
none
.RE
.RE
.PP
\fIhttp://\fR, \fIhttps://\fR and \fIftp://\fR
.RS 4
Followed by a server name and a path on this server, this URI instructs MacPorts to download a tarball snapshot of a ports tree from the URI and extract it to a path of its choice\&. This possibility is provided as a fallback to users that can use neither rsync nor subversion to sync the MacPorts port tree\&.

If the tarball contains a pre\-built PortIndex and PortIndex\&.quick file at PortIndex_${platform}_${os_major}_${os_arch}/, those will be used as default\&. If it does not, MacPorts will build a suitable port index for the local system automatically\&.
.RE
.SH "SOURCE FORMATS"
.sp
Port definition trees can be either directories (e\&.g\&. for the \fIfile://\fR and rsync methods) or tarballs (for HTTP, HTTPS, FTP and rsync)\&. For the directory format, no additional verification is performed\&. Because transfers using rsync are not encrypted or authenticated, the use of this setup over rsync is discouraged\&.
.sp
If the URI ends with \fI\&.tar\fR, MacPorts assumes the source is a tarball and attempts to download an additional \fI\&.tar\&.rmd160\fR signature file\&. It then uses the public keys configured in \fBpubkeys.conf\fR(5) to verify this signature to ensure the source has not been tampered with\&. You are strongly encouraged to use this setup, and it has been the default for MacPorts since it has been introduced\&.
.SH "FLAGS"
.sp
Source specifications support a number of flags that modify the behavior of a source:
.PP
\fInosync\fR
.RS 4
Skip this source when
\fBport sync\fR
or
\fBport selfupdate\fR
are used\&. You can use this flag to avoid updating your local ports tree managed by a source control system such as Git or Subversion\&. You are responsible for generating a current port index using the
\fBportindex\fR(1)
command for sources marked with this flag\&.
.RE
.PP
\fIdefault\fR
.RS 4
Mark this source as the default\&. The default source is used as a fallback to load additional files (such as PortGroups and mirror definitions) from the
\fI_resources/port1\&.0\fR
directory\&.
.RE
.SH "FILES"
.sp
The path of the \fIsources\&.conf\fR file is specified in the \fBsources_conf\fR option of \fBmacports.conf\fR(5)\&. It defaults to \fI${prefix}/etc/macports/sources\&.conf\fR\&. There is no user\-specific \fIsources\&.conf\fR file, but support for this can be emulated by setting \fIsources\&.conf\fR in the user\-specific \fBmacports.conf\fR(5) file\&.
.SH "SEE ALSO"
.sp
\fBport\fR(1), \fBport-selfupdate\fR(1), \fBport-sync\fR(1), \fBportindex\fR(1), \fBmacports.conf\fR(5)
.SH "AUTHORS"
.sp
.if n \{\
.RS 4
.\}
.nf
(C) 2015 The MacPorts Project
Clemens Lang <cal@macports\&.org>
.fi
.if n \{\
.RE
.\}
